﻿using System;
using System.Configuration;
using System.Security.Cryptography;
using System.Text;

namespace Guwave.MonitorDevice.Utility
{
    /// <summary>
    /// 得到AppSettings中的配置信息
    /// </summary>
    public sealed class ConfigHelper
	{
		/// <summary>
		/// 得到AppSettings中的配置字符串信息
		/// </summary>
		/// <param name="key"></param>
		/// <returns></returns>
		public static string GetConfigString(string key)
		{
            object  objModel = ConfigurationManager.AppSettings[key]; 
            return objModel.ToString();
		}

		/// <summary>
		/// 得到AppSettings中的配置Bool信息
		/// </summary>
		/// <param name="key"></param>
		/// <returns></returns>
		public static bool GetConfigBool(string key)
		{
			bool result = false;
			string cfgVal = GetConfigString(key);
			if(!cfgVal.IsEmpty())
			{
				try
				{
					result = bool.Parse(cfgVal);
				}
				catch(FormatException)
				{
				}
			}
			return result;
		}

		/// <summary>
		/// 得到AppSettings中的配置Decimal信息
		/// </summary>
		/// <param name="key"></param>
		/// <returns></returns>
		public static decimal GetConfigDecimal(string key)
		{
			decimal result = 0;
			string cfgVal = GetConfigString(key);
            if (!cfgVal.IsEmpty())
            {
				try
				{
					result = decimal.Parse(cfgVal);
				}
				catch(FormatException)
				{
				}
			}

			return result;
		}
		/// <summary>
		/// 得到AppSettings中的配置int信息
		/// </summary>
		/// <param name="key"></param>
		/// <returns></returns>
		public static int GetConfigInt(string key)
		{
			int result = 0;
			string cfgVal = GetConfigString(key);
            if (!cfgVal.IsEmpty())
            {
				try
				{
					result = int.Parse(cfgVal);
				}
				catch(FormatException)
				{
                }
			}

			return result;
		}

        /// <summary>
		/// 得到AppSettings中的配置DateTime信息
		/// </summary>
		/// <param name="key"></param>
		/// <returns></returns>
        public static DateTime GetConfigDateTime(string key)
        {
            DateTime result = DateTime.Now; 
            string cfgVal = GetConfigString(key);
            if (!cfgVal.IsEmpty())
            {
                try
                {
                    result = DateTime.Parse(cfgVal);
                }
                catch (FormatException)
                {
                }
            }
            return result;
        }
    }
}
